What are the differences between using an object and a pointer for implementing a singleton in C